package com.hilihili.domain.entity;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;

import com.hilihili.util.VideoType;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.data.annotation.Transient;

/**
 * 视频对象 video
 *
 * @author xhc
 * @date 2023-11-15
 */
@Data
public class Video extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    @Transient
    private int offset;
    @Transient
    private int limit;

    @Transient
    private boolean isAdd;

    @Transient
    private String coinsChange;
    @Transient
    private String commentCount;
    @Transient
    private String danmakuCount;
    @Transient
    private String likesChange;
    @Transient
    private String sharesChange;
    @Transient
    private String starsChange;
    @Transient
    private String viewsChange;
    @Transient
    private String createChange;
    @Transient
    private String nickname;

    @Transient
    private String avatar;
    @Transient
    private String followsChange;
    @Transient
    private String fansChange;
    @Transient
    private String upinrtoduction;

    // 20231217新增两个字段
    @Transient
    private Integer level;
    @Transient
    private Long experience;

    /** $column.columnComment */
    private Long id;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String title;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long up;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String img;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long views;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long likes;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long stars;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long shares;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long coins;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String link;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String introduction;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdAt;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updatedAt;
    /** $column.columnComment */
    @Excel(name = "${type_id}", readConverterExp = "$column.readConverterExp()")
    private Integer typeId;
    @Excel(name = "${type_id}", readConverterExp = "$column.readConverterExp()")
    private Object videoItems;
    private Integer index;
    private String district;
    private Integer promotion;
    private Integer secondCreation;
    private Integer original;
    private Integer isPublish;
    private List<District> districts;
    private String topic;
    private List<String> tags;
    private String duration;
    private String transferAddress;
    private Date publishTime;


    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    public Long getExperience() {
        return experience;
    }

    public void setExperience(Long experience) {
        this.experience = experience;
    }

    public Integer getIndex() {
        return index;
    }

    public void setIndex(Integer index) {
        this.index = index;
    }

    public Object getVideoItems() {
        return videoItems;
    }

    public void setVideoItems(Object videoItems) {
        this.videoItems = videoItems;
    }

    public Integer getTypeId() {
        return typeId;
    }

    public void setTypeId(Integer typeId) {
        this.typeId = typeId;
    }

    public boolean getIsAdd() {
        return isAdd;
    }

    public void setIsAdd(boolean add) {
        this.isAdd = add;
    }

    public String getAvatar() {
        return avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    public String getFollowsChange() {
        return followsChange;
    }

    public void setFollowsChange(String followsChange) {
        this.followsChange = followsChange;
    }

    public String getFansChange() {
        return fansChange;
    }

    public void setFansChange(String fansChange) {
        this.fansChange = fansChange;
    }

    public String getUpinrtoduction() {
        return upinrtoduction;
    }

    public void setUpinrtoduction(String upinrtoduction) {
        this.upinrtoduction = upinrtoduction;
    }

    public String getCreateChange() {
        return createChange;
    }

    public void setCreateChange(String createChange) {
        this.createChange = createChange;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public int getOffset() {
        return offset;
    }

    public void setOffset(int offset) {
        this.offset = offset;
    }

    public int getLimit() {
        return limit;
    }

    public void setLimit(int limit) {
        this.limit = limit;
    }

    public String getCoinsChange() {
        return coinsChange;
    }

    public void setCoinsChange(String coinsChange) {
        this.coinsChange = coinsChange;
    }

    public String getCommentCount() {
        return commentCount;
    }

    public void setCommentCount(String commentCount) {
        this.commentCount = commentCount;
    }

    public String getDanmakuCount() {
        return danmakuCount;
    }

    public void setDanmakuCount(String danmakuCount) {
        this.danmakuCount = danmakuCount;
    }

    public String getLikesChange() {
        return likesChange;
    }

    public void setLikesChange(String likesChange) {
        this.likesChange = likesChange;
    }

    public String getSharesChange() {
        return sharesChange;
    }

    public void setSharesChange(String sharesChange) {
        this.sharesChange = sharesChange;
    }

    public String getStarsChange() {
        return starsChange;
    }

    public void setStarsChange(String starsChange) {
        this.starsChange = starsChange;
    }

    public String getViewsChange() {
        return viewsChange;
    }

    public void setViewsChange(String viewsChange) {
        this.viewsChange = viewsChange;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setTitle(String title)
    {
        this.title = title;
    }

    public String getTitle()
    {
        return title;
    }
    public void setUp(Long up)
    {
        this.up = up;
    }

    public Long getUp()
    {
        return up;
    }
    public void setImg(String img)
    {
        this.img = img;
    }

    public String getImg()
    {
        return img;
    }
    public void setViews(Long views)
    {
        this.views = views;
    }

    public Long getViews()
    {
        return views;
    }
    public void setLikes(Long likes)
    {
        this.likes = likes;
    }

    public Long getLikes()
    {
        return likes;
    }
    public void setStars(Long stars)
    {
        this.stars = stars;
    }

    public Long getStars()
    {
        return stars;
    }
    public void setShares(Long shares)
    {
        this.shares = shares;
    }

    public Long getShares()
    {
        return shares;
    }
    public void setCoins(Long coins)
    {
        this.coins = coins;
    }

    public Long getCoins()
    {
        return coins;
    }
    public void setLink(String link)
    {
        this.link = link;
    }

    public String getLink()
    {
        return link;
    }
    public void setIntroduction(String introduction)
    {
        this.introduction = introduction;
    }

    public String getIntroduction()
    {
        return introduction;
    }
    public void setCreatedAt(Date createdAt)
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt()
    {
        return createdAt;
    }
    public void setUpdatedAt(Date updatedAt)
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt()
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("title", getTitle())
            .append("up", getUp())
            .append("img", getImg())
            .append("views", getViews())
            .append("likes", getLikes())
            .append("stars", getStars())
            .append("shares", getShares())
            .append("coins", getCoins())
            .append("link", getLink())
            .append("introduction", getIntroduction())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}
